"""
# day6作业：
# 1、有这样的一个列表，深度不可知，列表里面还会嵌套列表，
# 我想要把这个列表从左到右拼接成一个新的列表，且顺序不变
# 举例：[12,33,[11,22,33,[55,66,99]],[55,66]]
# 变成：[12, 33, 11, 22, 33, 55, 66, 99, 55, 66]
# 2、编写装饰器，为多个函数加上认证的功能（用户的账号密码）
#  要求登录成功一次，后续的函数都无需输入用户名和密码
# 3、请实现一个装饰器，把函数的返回值+100然后返回
# 4、请实现一个装饰器，通过一次调用使函数重复执行5次
# 5、输入任意个字符串,分别实现从小到大输出和从大到小输出
# 6、接收n个数字，求这些参数数字的和
# 7、编写一个函数，实现数字的自增（从0开始，每调用一次，数字+1）

"""

# 1、有这样的一个列表，深度不可知，列表里面还会嵌套列表，
# 我想要把这个列表从左到右拼接成一个新的列表，且顺序不变
# 举例：[12,33,[11,22,33,[55,66,99]],[55,66]]
# 变成：[12, 33, 11, 22, 33, 55, 66, 99, 55, 66]
# def a (lst:list):
#     result = []
#     for i in lst:
#         if isinstance(i,list):
#             result.extend(a(i))
#         else:
#             result.append(i)
#     return result
# print(a([12,33,[11,22,33,[55,66,99]],[55,66]]))


"""
装饰器语法：
def a(func):
    def b(*args,**kwargs):
        func(*args,**kwargs)
    return b
闭包：
def num():
    def b():
        a = 1
    return b
====
n = num()
n()
"""

#3、请实现一个装饰器，把函数的返回值 + 100然后返回
# def a (nums):
#     def b (*args,**kwargs):
#         i = nums(*args,**kwargs)
#         i+=100
#         return i
#     return b
# @a
# def a():
#     return 15
# print(a())



# 4、请实现一个装饰器，通过一次调用使函数重复执行5次
# def a (nums):
#     def b (*args,**kwargs):
#         for i in range(5):
#             i =nums(*args,**kwargs)
#     return b
# @a
# def n ():
#     print("你坏坏")
# n()

# 5、输入任意个字符串,分别实现从小到大输出和从大到小输出
# def sort_strings():
#     # 输入多个字符串，用空格分隔
#     input_str = input("请输入多个字符串，用空格分隔：")
#     strings = input_str.split()  # 分割成列表
#
#     if not strings:
#         print("没有输入任何字符串！")
#         return
#
#     # 从小到大排序（升序）
#     ascending = sorted(strings)
#     # 从大到小排序（降序）
#     descending = sorted(strings, reverse=True)
#
#     print("\n从小到大排序：")
#     for s in ascending:
#         print(s)
#
#     print("\n从大到小排序：")
#     for s in descending:
#         print(s)

# 调用函数

# 6、接收n个数字，求这些参数数字的和
# def a(*n):
#     sum =0
#     for i in n:
#         sum+=i
#     return sum
# print(a(1,2,3))

# 7、编写一个函数，实现数字的自增（从0开始，每调用一次，数字+1）
# def a ():
#     i=0
#     def b ():
#         nonlocal i
#         i+=1
#         return i
#     return b
# n=a()
# print(n()) # 1
# print(n()) # 2
# print(n()) # 3